@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

:: 检查管理员权限
net session >nul 2>&1
if %errorLevel% == 0 (
    echo [INFO] 已获取管理员权限
) else (
    echo [ERROR] 请以管理员身份运行此脚本
    echo [INFO] 右键点击脚本，选择"以管理员身份运行"
    pause
    exit /b 1
)

:: 检查 Docker 是否运行
docker info >nul 2>&1
if %errorLevel% == 0 (
    echo [INFO] Docker 服务正在运行
) else (
    echo [WARN] Docker 服务未运行，正在尝试启动...
    net start com.docker.service
    timeout /t 10 /nobreak >nul
)

:: 保存当前容器的数据卷
echo [INFO] 停止当前运行的容器...
docker-compose stop

:: 拉取最新代码（如果是 git 项目）
:: git pull

:: 重新构建镜像（保留数据卷）
echo [INFO] 重新构建镜像...
docker-compose build --no-cache

:: 启动更新后的容器
echo [INFO] 启动更新后的容器...
docker-compose up -d

:: 显示容器状态
echo.
echo [INFO] 容器状态：
docker-compose ps

:: 等待服务就绪
echo.
echo [INFO] 等待服务就绪...
timeout /t 10 /nobreak >nul

:: 显示日志
echo.
echo [INFO] 应用日志：
docker-compose logs -f app

:: 清理不再使用的镜像
echo [INFO] 清理旧镜像...
docker image prune -f

endlocal 